package cn.xutongxue.gtms.service;

import cn.xutongxue.gtms.base.DeleteRequest;
import cn.xutongxue.gtms.entity.Thesis;
import cn.xutongxue.gtms.entity.dto.thesis.PostThesisRequest;
import cn.xutongxue.gtms.entity.dto.thesis.ThesisQueryRequest;
import cn.xutongxue.gtms.entity.vo.ApplyVo;
import cn.xutongxue.gtms.entity.vo.ThesisTeacherVo;
import cn.xutongxue.gtms.entity.vo.ThesisVo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.base.MPJBaseService;

import javax.servlet.http.HttpServletRequest;

/**
* @author Administrator
* @description 针对表【thesis】的数据库操作Service
* @createDate 2023-08-10 14:13:49
*/
public interface ThesisService extends MPJBaseService<Thesis> {

    boolean postThesis(PostThesisRequest postThesisRequest, HttpServletRequest request);

    boolean deleteThesis(DeleteRequest deleteRequest);

    Page<ThesisVo> listThesisByPage(ThesisQueryRequest thesisQueryRequest);

    Page<ThesisTeacherVo> listThesisByTeacherId(Long id, Integer current, Integer size);

    Page<ThesisVo> searchThesisByAll(ThesisQueryRequest thesisQueryRequest);

    Boolean selectThesis(Long thesisId);

    Page<ApplyVo> applyList(Long teacherId, Integer current, Integer size);

    Boolean audit(Long thesisId, Integer state);

    ThesisVo getThesisInfo();
}
